In a control system of a servomotor for driving a feed shaft of a machine tool, a robot arm, etc., there is known a method of preventing damage to a mechanical system by estimating a force externally exerted on the servomotor by a disturbance estimation observer to monitor the estimated value. FIGS. 5a and 5b (PRIOR ART) are block diagrams illustrating a principle of the conventional disturbance load estimation method. In FIG. 5a, a servomotor 10 receives a torque command (current command) Tc outputted from a control system which performs a proportional control with respect to position and a proportional-plus-integral control with respect to speed, and outputs an actual torque T. A movement of a movable member such as a feed shaft of a machine tool, a robot arm, etc, which is driven by the servomotor, is sometimes hindered for some reason such that the driven member collides with some other object and the tool is excessively pressed against a workpiece. Such a condition is equivalent to an occurrence of an external disturbance load torque Td exerted on the motor 10. Conventionally, a difference between an acceleration estimated based on the torque command Tc and an actual acceleration detected by a speed detector mounted on the motor 10 is obtained at a term 11, and this acceleration difference is converted into a torque value as an estimated disturbance load torque Td* at a torque conversion term 12.
FIG. 6A (PRIOR ART) is a block diagram of a conventional control system for obtaining an estimated disturbance load torque, and illustrates the case where the disturbance load is estimated by the acceleration comparison. In FIG. 6A, the servomotor control system is expressed by a term 8 for speed loop processing, a term 1 for current loop processing, and terms 2 and 3 for the transfer function of the servomotor 10, and an observer 40 for obtaining the estimated disturbance load torque Td* is expressed by terms 5, 6 and 7. The term 5 is a term for multiplying an actual current Ic to be supplied to the servomotor by a parameter .alpha. (quotient obtained by dividing a torque constant Kt of the motor by inertia Jm), the term 6 is a differential term for differentiating an actual speed v, and the term 7 is a term to be multiplied by a parameter 1/.alpha..
FIG. 6B (PRIOR ART) is a block diagram of a conventional system which embodies components of a control system for a machine tool. As illustrated, control apparatus 30 represents a control apparatus such as a numerical control apparatus (CNC) to control a machine tool. Control instructions are transferred between common memory 32 and then transferred between digital servo circuit 34. Digital servo circuit 34 includes a CPU for executing position, speed, and current control processing and outputs a torque command, i.e. current command. The torque command is amplified by servo amplifier 36 and then transferred to motor 38. Pulse coder 40 generates a predetermined number of feedback pulses per revolution of motor 38 to thereby feedback position and speed information to digital servo circuit 34.
In the servomotor control system shown in FIG. 6A, the torque command (current command) Tc is obtained at the term 8 for speed loop processing. At the term 1 for current loop processing, a voltage command is obtained based on the torque command Tc, and an actual current Ic corresponding to the voltage command is supplied to the servomotor, to thereby drive the servomotor. The observer 40 for estimating the disturbance load torque Tc obtains a difference between the value (Ic.multidot..alpha.) which is obtained at the term 5 by multiplying the actual current Ic by the parameter .alpha., and the value dv/dt which is obtained at the term 6 by differentiating the actual speed v of the motor, and this difference {(Ic.multidot..alpha.)-dv/dt} is multiplied by the parameter 1/.alpha.. The resultant value (Ic-dv/dt.multidot.Jm/Kt) represents the estimated value Td* of disturbance load torque Td in terms of current.
According to the conventional disturbance load estimation for a servomotor, a disturbance load value can be accurately estimated when the torque command and the torque actually output from the servomotor are correspondent to each other. However, in the case where the torque is not output according to the torque command due to voltage saturation etc., the disturbance load cannot be estimated with accuracy.
FIG. 7 is a diagram showing a servomotor voltage state during high-speed rotation. In FIG. 7, the voltage state is expressed in a direct-current coordinate system, wherein the horizontal axis indicates a q-phase voltage which contributes to the torque actually generated by the servomotor, the vertical axis indicates a d-phase voltage which does not contribute to the torque actually generated by the motor, and the circle indicates the DC linkage voltage of a servo amplifier. The servo amplifier supplies the motor with a driving current I corresponding to a current command Ic input thereto, to thereby drive the motor. The voltage that the servo amplifier can apply is, however, limited to the DC linkage voltage, and the servo amplifier cannot apply a voltage higher than the DC linkage voltage to the motor. In general, a counterelectromotive voltage E develops with rotation of the motor, and the terminal voltage of the motor is equal to the sum of the counterelectromotive voltage E and a voltage required for motor acceleration corresponding to the current command Ic.
The counterelectromotive voltage E rises with increase in the rotational speed of the motor, and in some cases the sum of the counterelectromotive voltage E and the voltage generated in accordance with the current command Ic exceeds the DC linkage voltage. In such cases, the driving current I for driving the motor is not able to develop a voltage corresponding to the current command Ic, causing the motor to become unable to develop the torque equivalent to the current value (Ic-I), with the result that torque as demanded by the torque command cannot be output.
In such a case, if the disturbance load is estimated by the conventional disturbance load estimation method, then the estimated disturbance load value includes not only the disturbance load that should primarily be estimated but also a torque difference between the commanded torque and the actual torque, making the estimation of the disturbance load inaccurate. FIG. 5b shows the state in which the estimation by the conventional disturbance load estimation for a servomotor involves an error due to a torque difference induced by current saturation. In FIG. 5b, a difference between the acceleration estimated based on the torque command Tc and the actual acceleration detected by the speed detector mounted on the motor 10 is obtained at the term 11, and this acceleration difference is converted into a torque value as the estimated disturbance load torque Td* at the torque conversion term 12. The estimated disturbance load torque Td* obtained in this manner includes, besides the disturbance load torque Td that should primarily be estimated, a difference (Tc-T) between the torque by the torque command Tc and the actual torque T caused by voltage saturation etc. This torque difference (Tc-T) corresponds to an error in the estimated disturbance load.